/**
 * 矩阵类
 *
 * @param   Number  width       宽度 默认为10
 * @param   Number  height      高度 默认为10
 */
function Matrix (options) {

    this._width     = 'undefined' == typeof options.width   ? 10    : options.width;
    this._height    = 'undefined' == typeof options.height  ? 10    : options.height;
    this._structure = [];
}

/**
 * 获取随机矩阵
 *
 * @param   Number  blockRatio  障碍出现概率 默认为10 (百分比)
 */
Matrix.prototype.generateRandom = function (blockRatio) {

    for (var offsetRow = 0; offsetRow < this._height; offsetRow ++) {

        var list    = [];

        for (var offsetCell = 0; offsetCell < this._width; offsetCell ++) {

            isBlock = Math.random() * 100 < blockRatio    ? 1 : 0;
            list.push(isBlock);
        }

        this._structure.push(list);
    }
}

/**
 * 判断是否是墙
 *
 * @param   Number  opsition    位置
 */
Matrix.prototype.isWall = function (position) {

    return  1 == this._structure[position.y][position.x];
}

/**
 * 获取结构数据
 *
 * @return  Array   结构数据
 */
Matrix.prototype.getStructure   = function () {

    return  this._structure;
}